#ifndef MODEL_INFO_H
#define MODEL_INFO_H

#include <QMap>

/**
 * @class model_info
 * @brief 模型信息类，用于存储和管理与模型相关的信息。
 */
class model_info {
public:
    /**
     * @brief 构造函数
     *
     * 初始化模型信息对象，包括标题、列表和结束信息。
     *
     * @param title 模型标题
     * @param list 模型内容列表
     * @param end 模型结束信息
     */
    model_info(const QString& title, const QMap<QString, QString>& list, const QString& end);

    /**
     * @brief 构造函数
     *
     * 初始化模型信息对象，包括标题和列表。
     *
     * @param title 模型标题
     * @param list 模型内容列表
     */
    model_info(const QString& title, const QMap<QString, QString>& list);

    /**
     * @brief 析构函数
     *
     * 默认析构函数，释放模型信息对象的资源。
     */
    ~model_info() = default;

    /**
     * @brief 获取标题
     *
     * 返回模型的标题信息。
     *
     * @return 模型标题
     */
    QString get_title() const;

    /**
     * @brief 设置标题
     *
     * 更新模型的标题信息。
     *
     * @param title 新的模型标题
     */
    void set_title(const QString& title);

    /**
     * @brief 获取内容列表
     *
     * 返回模型的内容列表。
     *
     * @return 模型内容列表
     */
    QMap<QString, QString> get_error_map() const;

    /**
     * @brief 设置内容列表
     *
     * 更新模型的内容列表信息。
     *
     * @param list 新的内容列表
     */
    void set_error_map(const QMap<QString, QString>& error_map);

    /**
     * @brief 获取结束信息
     *
     * 返回模型的结束信息。
     *
     * @return 模型结束信息
     */
    QString get_end() const;

    /**
     * @brief 设置结束信息
     *
     * 更新模型的结束信息。
     *
     * @param end 新的结束信息
     */
    void set_end(const QString& end);

private:
    QString _title;                     ///< 模型标题
    QMap<QString, QString> _error_map;  ///< 模型内容列表
    QString _end;                       ///< 模型结束信息
};

#endif  // MODEL_INFO_H
